#include<iostream>
#include<cstdio>
#include<errno.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<fcntl.h>
#include<cstring>

// 模拟实现一个perror

void my_perror(const char *info)
{
    fprintf(stderr,"%s : %s\n",info,strerror(errno));
}

int main()
{
    int fd = open("log.txt",O_RDONLY); //必定失败的
    if(fd < 0)
    {
        //perror("open");
        my_perror("open");
        return 1;
    }
    return 0;
}

//int main()
//{
//    //stdout
//    printf("hello printf 1\n");
//    fprintf(stdout,"hello fprintf 1\n");
//    fputs("hello fputs 1\n",stdout);
//    
//    //stderr
//    fprintf(stderr,"hello fprintf 2\n");
//    fputs("hello fputs 2\n",stderr);
//    perror("hello perror 2");
//
//    //cout
//    std::cout<<"hello cout 1"<<std::endl;
//
//    //cerr
//    std::cerr<<"hello cerr 2"<<std::endl;
//    return 0;
//}

